home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 3 / United Public Domain Gold 3.iso / games / pg369.dms / pg369.adf / Knightwoode.AMOS / Knightwoode.amosSourceCode
AMOS Source Code  |  1992-02-21  |  64KB  |  1,947 lines

  1. Set Buffer 30
  2. On Error Goto PANIC
  3. '
  4. '*****************************************************   
  5. '
  6. '    KNIGHTWOODE ADVENTURE by T.KINGSMILL
  7. '    WRITTEN FROM MAY 1993 UNTIL SOME YEARS LATER..  
  8. '    Last Amendment: April 1994: ResetCol subroutine,
  9. '                                Text amendments.
  10. '
  11. '    The game parser is based on my Battleaxe adventure  
  12. '    routine, originally written in BBC Basic in 1991.   
  13. '    Amiga Battleaxe written May 1993.   
  14. '
  15. '*****************************************************   
  16. '
  17. ' Set up game variables and arrays 
  18. INITIALISATION:
  19. ' >>> WORDS <<<
  20. M=11 : Rem No of words in vocab 
  21. ' >>> OBJECTS <<<
  22. B=47 : Rem No of objects
  23. MO=20 : Rem Max no of obj can carry
  24. OC=0 : Rem no of objects being carried
  25. ' >>> LOCATIONS <<<
  26. L=75 : Rem total number of locations
  27. LC=1 : Rem Current location no
  28. ' >>> CHARACTERS <<< 
  29. PEOPLE=24 : Rem Total number of characters 
  30. MESSAGEQUANTITY=83 : Rem Number of messages available to them 
  31. ' >>> GENERAL <<<
  32. SC=0 : Rem score
  33. T=0 : Rem turns taken
  34. DEADEND$="I can't go that way."
  35. ACCESS=1 : Rem The highest level allowed to (initially) 
  36. GRA=0 : Rem graphics on/off on=1 off=0 
  37. GR$="" : Rem graphic screen at location (if any at all) 
  38. GARTH=0
  39. '------------------------------------------------------------- 
  40. ' >>> ARRAYS <<< 
  41. Dim V$(B) : Rem vocab array
  42. Dim OBJ$(B) : Rem Objects Array
  43. Dim J(B) : Rem Obj St Loc 
  44. Dim LOC$(L) : Rem descriptions 
  45. Dim N(L)
  46. Dim S(L)
  47. Dim E(L)
  48. Dim W(L) : Rem movement data arrays 
  49. Dim CHAR$(PEOPLE) : Rem The People's names and what they say on meeting. 
  50. Dim MESSAGENO(PEOPLE) : Rem  The message number the character uses.
  51. Dim MESSAGE$(MESSAGEQUANTITY) : Rem The actual messages. 
  52. Dim STANDING(PEOPLE) : Rem  Location of each Character in the game. 
  53. ' The strings B$ C$ can be used for repetitive location descriptions.  
  54. '
  55. '
  56. '*********************************************************** 
  57. '***                                                     *** 
  58. '***                      GAME DATA                      *** 
  59. '***                                                     *** 
  60. '*********************************************************** 
  61. '
  62. '
  63. '
  64. '
  65. LOCATIONS:
  66. Data "I am standing on the village green,     which is remarkably, em, green.  Roads  lead east and west."
  67. Data "I'm standing in a street in the         wonderful village of Knightwoode. Exits face south, east and west."
  68. Data "On a junction at the road side, I can   see paths lead north, east and west."
  69. Data "I am standing on a bumpy road, shaded byoverhanging trees, on the edge of       Knightwoode. Paths lead south and west."
  70. Data "This winding path seems to go on for    ages. I can go south or north."
  71. Data "Wow! I am standing inside Old Jack's    garden. It really does look very        impressive. I can go north, south and   east."
  72. Data "I am standing in the middle of a busy   street. I can go in all four directions."
  73. Data "Ah, this must be the Vale Police        department. It isn't too impressive, butit does the job. West takes me out of   here."
  74. Data "I am in a street. I can go north, east  and south."
  75. Data "This is Fergo's Farm. Smashing place.   Looks like I can go north, south and    east."
  76. Data "I am in Fergo's barn. I don't need to   have superb eyes to see that there are  hundreds and hundreds of FROGS jumping  around in here. Strange what they have  on farms these days. Exit: west."
  77. Data "Fergo's Farmhouse.. a masterpiece of    modern design. I think Fergo is on      holiday at the moment. I can go south."
  78. Data "I am inside the local inn, where        everything happens in Knightwoode.      It's got all the normal things you wouldexpect from your local. I can go north  out of the inn."
  79. Data "I'm inside the blacksmith's place. I    don't know the chap in here very well,  but I'm sure he is very helpful. Exits: east."
  80. Data "At Henry's Horses, I can see lots of    pieces of horsy gear, but not too many  horses. I guess they are all out in the fields. I can go north to the street."
  81. Data "This is Greg's shed. Greg is the full   time gardener here at Old Jack's place. He more or less lives in this shed. I   can only go west from here."
  82. Data "I am at the huge main entrance to Old   Jacks' place. This is by far the largesthouse in the Knightwoode village. I hopeFripples doesn't cause me problems. I   can go south or north, if I can get pastFripples."
  83. Data "This is the great hall of Old Jacks'    home. The oak walls are lined with      paintings and shields, and the room is  lined with statues and ornaments. I can go south, north, east and up."
  84. Data "At the top of the staircase, I can go   down, north and west."
  85. Data "This is the kitchen, but it's not your  every day job. It is certainly large,   probably for hosting meetings, parties  and so on. I can go west out of the     room."
  86. Data "I am inside the armoury, a shrine of    shields, swords and all sorts of unusualweaponry. The only exit is south."
  87. Data "I am inside a large bedroom. A four     poster bed fills most of the room, but  pieces of furniture plug the corners.   I can go south from here."
  88. Data "This is the bathroom, a place of vital  human activity. What more can I say!    I can only go east."
  89. Data "I am on a long winding path - one of    those that seems to go on forever. I    can go west or south."
  90. Data "Several metres away I can see a couple  of very dumb-looking guards. I can go   north, but south as well if you can     help me out."
  91. Data "Before me is a small signpost. It marks routes leading in all four directions."
  92. Data "I am on a wide path through a thick     forest. I can go in all four directions."
  93. Data "This is a large forest clearing. I can  see small piles of wood smouldering, so there must have been recent activity.   I can go south and west."
  94. Data "Well, how can I put it. This is just a  dead end. I can't get past all these    bushes and stuff. I can only go west."
  95. Data "I am standing on the edge of a large    strawberry field. I can go east. Over tothe west I can see a cottage. I can alsogo south."
  96. Data "This is the lady's cottage, a simple,   functional place, but somehow it feels  very comfortable. A fireplace burns awayand a small wooden chair is the centre  piece of the room. I can go east."
  97. Data "I am deep in the forest. From here I am able to go north and east."
  98. Data "I am on a forest path and can go north  and east."
  99. Data "I am deep in the forest. I can go north and west."
  100. Data "This is a well-worn track through a     grassy meadow. You can take me west and south."
  101. Data "Before me is a large signpost, a        popular lookout spot for woodpeckers, sothey tell me. I can go north, south and east."
  102. Data "In front of me is a huge corn field thatdisappears into the horizon. I can go   north to the junction."
  103. Data "On a rocky track, I have the option of  going west or east."
  104. Data "I'm at the west side of a large stone   bridge that spans a calmly flowing      river. I can go east or west."
  105. Data "I am standing on the infamous bridge of the Knightwoode valley. I sure feel     privileged to be on here. I can go east and west."
  106. Data "This is the east side of the great stonebridge. I can go south and west."
  107. Data "In front of me stands a tough-looking   guard who is blocking the entrance to a large tent. It looks like it is a       soldiers' party. I can go north and     south past the soldier."
  108. Data "I'm standing in the middle of the tent, enjoying the good music, and admiring   the cool CD player. Some of the soldiersseem a little hostile, but I suppose    they are the enemy. Shame there's not   more young women at this party. Exits:N."
  109. Data "Gosh! I must have been asleep. Looks    like I'm in a small barn. There are no  windows and the door looks bolted. I    can't see any exits, Help!"
  110. Data "I am outside a small barn type building.I can go south along a track."
  111. Data "I am standing before the grand castle   gates of the enemies. The great arch is breathtaking. Below the arch are severalwell-armoured guards. I can go east or  west."
  112. Data "Standing just inside the main gates, it looks like I am able to head in any     direction."
  113. Data "I am in the market place, brimming with activity. The common folk who gave in tothe nasty soldiers, are out and about   buying their daily goods. I can go east,south and north."
  114. Data "I'm at a junction in the castle grounds.To the north I can see a small          mysterious hut with the door half open. There are paths leading south, west and east."
  115. Data "The sign on the door says this is WinnieWitch's den. It's a bit gloomy in here, but hey, I suppose witches' rooms are   meant to be dark, with cauldrons etc. I can go south to the street."
  116. Data "This is the northern castle lookout. It actually looks out to the west, but     there you go. I can go east."
  117. Data "This is the eastern part of the market  place. The stalls stretch westwards downthe street, and are selling all the     usual things such as food, clothing and so on. I can go north and west."
  118. Data "I am in a gloomy street, with rows of   houses overhanging the narrow road. The road leads west, east and south."
  119. Data "This is a dead end in the street. It is kind of quiet and eerie down here. The  only exit is west."
  120. Data "Before me runs the main street from     east to west. A narrow, quiet road runs to the south."
  121. Data "I can see a large oak door before me,   which is the main entrance to the       infamous tower. The door is to the east,and is slightly open. I can also go     west."
  122. Data "I am walking along a street in the      castle grounds. The western wall of the castle stands next to me. I can go southand north to the main gates."
  123. Data "I'm at a junction on a street. Roads    allow me to go north, west and east."
  124. Data "The road opens up here to a large,      public square. Pigeons waddle around thewater fountain and the statues are      coated in bird deposits. I can only go  north from here."
  125. Data "What a nice place, Coldrock Castle Inn. The favourite drinking grounds for the  soldiers. Good job no-one knows who I amaround here. A few people are quietly   chatting in the corner over a drink.    West takes me out of here."
  126. Data "This is the southern lookout point in   the castle. Like the northern one, it   looks out to the west. Confused? So     am I. I wonder what happens if they are attacked from the east? I can only go   east to the street."
  127. Data "I'm down in the great sewers. Although  this isn't the sort of place you would  want to go on holiday, you have to      admire the construction. A dimly lit    tunnel leads east, but I can also go up."
  128. Data "I'm in a sewage tunnel, trying to keep  my feet dry. It sure stinks down here.  I don't think I can go any further east,it's too dark. West takes me back along the tunnel."
  129. Data "This is the grand entrance to Coldrock  Tower. Actually, it's not that grand,   but it's more impressive than Greg's    garden hut. I can go east, west and     south."
  130. Data "Before me is a staircase leading up.    The hallway continues north, and a smallroom is to the south."
  131. Data "I am inside a small room. I can go      north to the hallway."
  132. Data "This is some sort of store room. There  are all sorts of bits and pieces in     here - most of it never used. It must   belong to General Nojoy who governs thistower. I can go west."
  133. Data "I am at the top of a flight of stairs.  I can go east and down."
  134. Data "At a junction in the corridor, I can go west, up some stairs and north where    strange noises can be heard."
  135. Data "This is the Knightwoode version of deathrow, where good people are poorly       treated and Terry Wogan is treated nice.All sorts goes on along here. I can go  north and south."
  136. Data "I'm next to the death row cells. This   must be where Bros ended up. I can go   north and south."
  137. Data "I am in a small cell, with a little woodchair and tiny window. A couple of bookshave been left on the floor,            'How To Cope With The Death Sentance'   and 'Forgive Your Sins In A Day'. I can go south."
  138. Data "There are a flight of stairs leading    down here, and a corridor leading south.It's strange, there are lights on the   ceiling here, but none of them are      switched on. Instead, the walls are     lined with burning torches."
  139. Data "At the end of a short corridor, To the  south there is a large green door which is slightly open. I can go north and    south."
  140. Data "I am standing inside the mighty command room of General Nojoy. The walls are    clothed with beautiful maps, coloured inwith crayons and a little flag sits on  his desk. I can go north."
  141. ' text data breaks c7 c47 c87 c127 
  142. '
  143. ' Gives the location-number of the destination of going N, S, E and W. 
  144. MOVEMENTS:
  145. Data 0,0,3,2
  146. Data 0,7,1,9
  147. Data 6,0,4,1
  148. Data 0,5,0,3
  149. Data 4,0,0,0
  150. Data 17,3,16,0
  151. Data 2,15,8,14
  152. Data 0,0,0,7
  153. Data 10,13,2,0
  154. Data 12,9,11,0
  155. Data 0,0,0,10
  156. Data 0,10,0,0
  157. Data 9,0,0,0
  158. Data 0,0,7,0
  159. Data 7,0,0,0
  160. Data 0,0,0,6
  161. Data 0,6,0,0
  162. Data 21,17,20,0
  163. Data 22,0,0,23
  164. Data 0,0,0,18
  165. Data 0,18,0,0
  166. Data 0,19,0,0
  167. Data 0,0,19,0
  168. Data 0,25,0,0
  169. Data 24,0,0,0
  170. Data 24,27,29,30
  171. Data 26,32,28,33
  172. Data 0,34,0,27
  173. Data 0,0,0,26
  174. Data 0,33,26,0
  175. Data 0,0,30,0
  176. Data 27,0,34,0
  177. Data 30,0,27,0
  178. Data 28,0,0,32
  179. Data 0,36,0,0
  180. Data 35,37,38,0
  181. Data 36,0,0,0
  182. Data 0,0,39,36
  183. Data 0,0,40,38
  184. Data 0,0,0,39
  185. Data 0,42,0,40
  186. Data 41,0,0,0
  187. Data 42,0,0,0
  188. Data 0,0,0,0
  189. Data 0,0,0,0
  190. Data 0,0,0,0
  191. Data 48,57,55,46
  192. Data 49,47,52,0
  193. Data 50,48,53,51
  194. Data 0,49,0,0
  195. Data 0,0,49,0
  196. Data 53,0,0,48
  197. Data 0,52,54,49
  198. Data 0,0,0,53
  199. Data 0,59,56,47
  200. Data 0,0,0,55
  201. Data 47,58,0,0
  202. Data 57,0,60,61
  203. Data 55,0,0,0
  204. Data 0,0,0,58
  205. Data 0,0,58,0
  206. Data 0,0,63,0
  207. Data 0,0,0,62
  208. Data 0,65,67,56
  209. Data 64,66,0,0
  210. Data 65,0,0,0
  211. Data 0,0,0,64
  212. Data 0,0,69,0
  213. Data 70,0,0,68
  214. Data 0,69,0,0
  215. Data 0,70,0,0
  216. Data 0,71,0,0
  217. Data 0,74,0,0
  218. Data 73,0,0,0
  219. Data 74,0,0,0
  220. '
  221. ' The Vocab section. After thinking to leave this out, I have opted  
  222. ' to include this purely for OBJECTs so my cunning Get,Drop and Examine  
  223. ' routines can identify them quickly and easily. 
  224. '  
  225. VOCAB:
  226. Data "","","crisp","jar","horse","note","stag","bowl"
  227. Data "sword","","","","wig","poster","toothpaste"
  228. Data "twig","cream","tankard","strawberries","strawberries"
  229. Data "bag","soap","toothbrush","shower","tankard","onion","spray"
  230. Data "brick","shoe","lace","","",""
  231. Data "fish","lighter","gunpowder","lace","","","scroll"
  232. Data "","","","tin","chains","key","horseshoe"
  233. '
  234. '
  235. ' This is not recognised by the parser. It is used purely for
  236. ' descriptive purposes.
  237. OBJDESC:
  238. Data "A closed drain cover"
  239. Data "An open drain cover"
  240. Data "a Crisp Packet"
  241. Data "a Jar"
  242. Data "a Horse"
  243. Data "a Note"
  244. Data "a Stag Head"
  245. Data "a Bowl"
  246. Data "a Sword"
  247. Data "A Drawer"
  248. Data "A Chest"
  249. Data "A Cabinet"
  250. Data "a Wig"
  251. Data "a Poster"
  252. Data "some Toothpaste"
  253. Data "a Twig"
  254. Data "some Cream"
  255. Data "a Tankard"
  256. Data "some Strawberries"
  257. Data "a Bowl of strawberries"
  258. Data "a Bag"
  259. Data "a Soap Bag"
  260. Data "a Toothbrush"
  261. Data "some Shower Gel"
  262. Data "a Tankard"
  263. Data "an Onion"
  264. Data "a Spray"
  265. Data "a Brick"
  266. Data "a Shoe"
  267. Data "a Lace"
  268. Data "a Trapdoor in the ground"
  269. Data "an Open Trapdoor"
  270. Data "Movement in the Fountain"
  271. Data "a Fish"
  272. Data "a Lighter"
  273. Data "some Gunpowder"
  274. Data "some Gunpowder"
  275. Data "a large Vault"
  276. Data "an open Vault"
  277. Data "a Scroll"
  278. Data "a Barrel"
  279. Data "a Box"
  280. Data "a Shelf"
  281. Data "a Tin"
  282. Data "some Chains"
  283. Data "a Key"
  284. Data "a Horseshoe"
  285. '
  286. '
  287. ' Object start locations. 0 signifies that the object is not in the game 
  288. ' at the start.
  289. OBJSTLOC:
  290. Data 2,0,0,11,0,0,18,20
  291. Data 21,22,22,23,23,0,0,4
  292. Data 0,31,31,0,37,0,0,0,0
  293. Data 48,0,51,52,0,54,0,59
  294. Data 0,0,0,0,66,0,0,67,67
  295. Data 67,0,72,0,0
  296. '
  297. '
  298. CHARACTERS:
  299. Data "I see an Officer. He looks pretty glum."
  300. Data "The Barman is in front of me."
  301. Data "I can see the Blacksmith working away."
  302. Data "Henry is standing around in front of me."
  303. Data "In front of me is a man called Greg."
  304. Data "A large lady called Fripples is standingbefore me."
  305. Data "I can see a Little Girl a short distancefrom me."
  306. Data "Before me is a Forester"
  307. Data "I can see a Lady in a field of          strawberries."
  308. Data "A Woodpecker is perched upon a signpost."
  309. Data "I can see Garth standing on the bridge."
  310. Data "In front of me is a mean-looking Guard."
  311. Data "Sitting down near me is Bill."
  312. Data "A Watchman stands before me."
  313. Data "Winnie Witch can be seen looking very   busy."
  314. Data "I can see a heavy-looking Doorkeeper."
  315. Data "I see a Barlady wiping some glasses."
  316. Data "Something that resembles a Turtle is    sitting in a corner."
  317. Data "A fierce Wolf is before me."
  318. Data "I can see an ugly Guard blocking a      Vault."
  319. Data "A mighty Tiger blocks my way."
  320. Data "I can see my father, Fastflow September."
  321. Data "The mighty Busty Bella blocks my path."
  322. Data "General Nojoy is looking upon me."
  323. '
  324. '
  325. ' This gives the initial message(number) that each character gives.  
  326. MESSAGE_NUMBERS:
  327. Data 1,2,3,5,7,9,10,11,13,15
  328. Data 17,20,22,24,25,27,28,30
  329. Data 0,31,0,32,33,34
  330. '
  331. '
  332. '  
  333. MESSAGES:
  334. Data "It's not like it used to be around here you know, Red Tassel. The kids have it  too good and since Nojoy from the castlecame along, they have been letting all  the criminals go. I don't know. Sorry todepress you Red."
  335. Data "Ellow Red, howz ya doin. Sorry young    lad, yuz nowz yuz too yoongz ta drink.  Howzya mission comin along. Good I      expect. Why dontza gowz ta Old Jack's tasee if e can help yaz."
  336. Data "Hello young man. I deal in horseshoes,  metal appliances and so on. You can     watch if you want but please don't      interrupt while I'm working."
  337. Data "What now! What this! Oh.. em.. right,   this sounds interesting. Can you finish off this horseshoe for me, I'll be back later."
  338. Data "Hi there young Red. Don't tell me, you  are after a horse. Look, I know you havenot got much money, so can you get us   some horseshoes from the blacksmith? We fell out you see. It's not my fault, he is always moaning."
  339. Data "Hi Red. If you are complaining about thehorse, I'm sorry. It was a very good    deal, you can't expect a warranty. She  is very old you know."
  340. Data "Aye up young man. I don't suppose you   could get me some juicy tadpoles, they  are a rare delight for me. I can't      afford that farmer's prices you see."
  341. Data "Lovely, lad, lovely. Yummie Yummie. Theyare nice and tender at this age. Here,  give this note to Fripples and she'll   let you in the house."
  342. Data "What's this note then young man. Ah, so you have permission do you? Well you hadbetter keep this note. WIPE YOUR FEET!"
  343. Data "Hi, my name's Little Red Riding Hood.   Ok, ok, it's my parents' fault. You mustbe Red Tassel. I hope you can deal with that General Nojoy. Good luck. (The     little girl leaves)."
  344. Data "Hello there, my name is Tree-Sap the    forester. At least I used to be a       forester when the good knights roamed   the forest. Now Nojoy controls you need his permission to cut down a tree. If   only I had a piece of wood.."
  345. Data "Hi Red! This twig really helps. I'm     very grateful. Small it might be, but   it's the thought that counts. Have you  met that young lady yet over the way..  you might be in with a chance!.         Here is some cream - very handy."
  346. Data "Hi there! It's not often I see a lad    like you around these parts. I don't    suppose you have got some topping for   my strawberries. They are very boring   on their own."
  347. Data "Hi again Red. I almost forgot to tell   you the password to part three - it's   Red Rain. By the way, I'm free tomorrow evening so come around if you want..    Red - 'Gosh that was a bit sudden. I hadbetter complete this adventure first.'"
  348. Data "Squark! (or whatever....) Ellaw! I'm ya talking woodpecker. Have you seen       Brookside lately? Why doesn't the BBC   make a soap with a woodpecker in it?    Oops! this is the middle ages, forgot - sorry. Bye."
  349. Data "Squark! Thank God someone's done        something about Garth's breath! I've    been told to tell you the password to   part 4: the castle.. so it's REGRET."
  350. Data "Oh hi there man. Like I can't let you   over the bridge here man. Sorry It's a  bit heavy, but like, that's it man. Man,don't get too close, my breath really isstagnated. I can't get the attention of a girl I know. What a turnip.."
  351. Data "That's all cool and that mate, but don'tI need something else too?"
  352. Data "Oh hi there Red Tassel, my main man.    You've really changed my life. Keep     cool and watch out for the guards."
  353. Data "not used"
  354. Data "nu"
  355. Data "nu"
  356. Data "nu"
  357. Data "not used"
  358. ' no. 25.. 
  359. Data "Ah! hello young man. I can mind read youknow. I can tell you that your name is  Red Tassel and you're on a mission.     Well, I can help you if you find me somegungy liquid for my cauldron."
  360. Data "Go away, I'm busy. I can't help you any more. What do you want, a game of chess or something. I've got supper to make.  By the way, that stuff tasted revolting."
  361. Data "My job is to keep people away from this tower. Lonely job you know. If only I   could win over that juicy bar lady down the local."
  362. Data "Hi there young man. You must be new to  the town. I have to make this meal this evening for Busty Bella and her friends and I need something to spice up the    meal. I don't suppose you have anything?"
  363. Data "Hello there Red Tassel. Thanks again forthe onion. I hope you didn't get the    wrong idea about Busty Bella. Between   you and me I'd rather go out with that  grotesque guard by the tower. No-one    really likes her but watch your words."
  364. Data "Yo, hi traveller type dude. Like we're  bad man. We were good and all that, but we gave up around here. Hey, if you are up to something, go somewhere else -    there's plenty of room down here you    know."
  365. Data "Hey, go away. I know you shouldn't be   here. You don't scare me. What did you  say your name is? Red? Oh what a crap   name. Bet it took your parents months tothink that up. Leave me alone wimp."
  366. Data "Oh hello son. It's about time isn't it? I almost didn't recognize you. I'll justbe off now, see you later and thanks    again."
  367. Data "Ho Ho Ho Ho Ho Ho Ho! I bet you thought you have seen the worst baddies in this game, well now you face me - a 22 stone bulldozer! Before I kill you, may I justsay how nice that meal was, thanks to   your onion. You have a touch with food."
  368. Data "Ha! You have come a long way my son.    Unlike the rest of the dimwits around   here, I know who you are. I used to dealin antiques you know, but I needed more power. You'll now have to defeat mighty me!!"
  369. Data "Awe! I thought we weren't having        violence in this game. You know I only  wanted to be peaceful man, but my       cravings overtook me. Now I'm injured,  What are you going to do now? I don't   deserve this!"
  370. Data "Damn! I suppose you have control of the castle. Here, take the key to the sewer,you will need to clean it out every few days. Oh, and do not forget to pay the  gas bill and the milkman."
  371. ' Object descriptions (only items that can be picked up) 
  372. Data "-leave me-"
  373. Data "-leave me-"
  374. Data "It's just a normal crisp packet!"
  375. Data "The jamjar has steamed up, but it looks like something is moving in there.."
  376. Data "A fine horse indeed. It's a new compact breed that are very portable."
  377. Data "You notice it has some writing which    states, 'permission to enter the realm  of Old Jack. No children, No smoking, Noanimals. No entry after 9pm.'"
  378. Data "Well, it's a stag's head. Some would sayit's an improvement on my face."
  379. Data "Well, I might be able to USE it WITH    something else."
  380. Data "An amazing piece of weaponry. No foe    would come close to me with this in my  hand. Remember, I'm not killing anyone  with it though."
  381. Data ""
  382. Data ""
  383. Data ""
  384. Data "Well, it's a woman's wig, and don't     expect me to wear it."
  385. Data "The poster reads 'Visit the Horse   ShoeConvention - for blacksmiths            everywhere - everyday for three weeks.'"
  386. Data "Yummie mint flavour with red stripes."
  387. Data "My, aren't twigs interesting. Once a    part of a great tree, no doubt."
  388. Data "Well, it's skin cream for your face and so on. Who knows, I might find some use for it."
  389. Data "A fine silver tankard. I guess it can   hold a pint."
  390. Data "Delicious fresh strawberries, just      picked and full of worms."
  391. Data "Well, I see some strawberries in a bowl."
  392. Data "An incredible invention - brilliant for putting things in. This might just have something inside it now."
  393. Data "This is a soap bag, renown for          containing suprising items, such as     soap."
  394. Data "Handy for keeping your peggies clean."
  395. Data "Well, there aren't many showers in      Knightwoode, but who cares?"
  396. Data "A whole tankard of lovely beer. I won't drink it now though."
  397. Data "It stinks."
  398. Data "On the outside it reads 'Bristow's Love Spray .. use twice a day everyday of theweek. Guaranteed to have ladies         flocking to you.'"
  399. Data "Very useful for smashing windows and    giving people nasty lumps."
  400. Data ""
  401. Data "This lace may come in handy for         something else."
  402. Data ""
  403. Data ""
  404. Data ""
  405. Data "Well the fish was swimming happily, but it's certainly dead now."
  406. Data "This lighter must be used for.....      lighting things!"
  407. Data "Gunpowder, a marvellous invention."
  408. Data "The gunpowder barrel is firmly tied to  the lace."
  409. Data ""
  410. Data ""
  411. Data "The scroll reads, 'Always handle        gunpowder with care. Never light the    powder directly.'"
  412. Data ""
  413. Data ""
  414. Data ""
  415. Data "Written on the tin is 'Manic Monsters   for use against untamed foe'."
  416. Data "These chains may be useful on someone   other than Fastflow September."
  417. Data "My, it's a big bronze key. Adventure    games wouldn't be the same without keys,would they?"
  418. Data "A fine specimen for any horse."
  419. '
  420. '
  421. ' locations of characters
  422. STAND:
  423. Data 8,13,14,15,16,17,27,28
  424. Data 30,36,40,42,43,46,50,56
  425. Data 60,62,70,66,71,72,74,75
  426. '
  427. '
  428. '*************************************************************   
  429. '***                                                       ***   
  430. '***     DATA ENTRY / USER INPUT / INPUT INTERPRETATION    *** 
  431. '***                                                       *** 
  432. '************************************************************* 
  433. '
  434. '
  435. FEEDING_TIME:
  436. Restore LOCATIONS
  437. For F=1 To L
  438. Read LOC$(F)
  439. Next F
  440. Restore MOVEMENTS
  441. For F=1 To L
  442. Read N(F)
  443. Read S(F)
  444. Read E(F)
  445. Read W(F)
  446. Next F
  447. Restore VOCAB
  448. For F=1 To B : Rem vocab now only includes Objects for Get, Drop etc
  449. Read V$(F)
  450. Next F
  451. Restore OBJDESC
  452. For F=1 To B
  453. Read OBJ$(F)
  454. Next F
  455. Restore OBJSTLOC
  456. For F=1 To B
  457. Read J(F)
  458. Next F
  459. Restore CHARACTERS
  460. For F=1 To PEOPLE
  461. Read CHAR$(F) : Next F
  462. Restore MESSAGE_NUMBERS
  463. For F=1 To PEOPLE
  464. Read MESSAGENO(F) : Next F
  465. Restore MESSAGES
  466. For F=1 To MESSAGEQUANTITY
  467. Read MESSAGE$(F) : Next F
  468. Restore STAND
  469. For F=1 To PEOPLE
  470. Read STANDING(F) : Next F
  471. '--------------------------------------------------------
  472. '
  473. INITIAL_LOCATION_DESCRIPTION:
  474. Gosub TITLEPAGE : Rem **** see subroutine **** 
  475. Gosub LOOK
  476. PROMPT=0
  477. '--------------------------------------------------------
  478. '
  479. ' >>>> This is the start of the main loop <<<< 
  480. PARSER_INPUT:
  481. HK=0 : Inc T : Rem >>> understood reset, turns is incremented 
  482. Print : Pen 5
  483. If PROMPT=0
  484.       PROMPT=1 : Print "What should I do next?" : Goto _ASKUSER
  485. End If 
  486. If PROMPT=1
  487.       PROMPT=2 : Print "What is your next command?" : Goto _ASKUSER
  488. End If 
  489. If PROMPT=2
  490.       PROMPT=0 : Print "What now?"
  491. End If 
  492. _ASKUSER:
  493. Pen 2
  494. Input A$
  495. A$=Lower$(A$)
  496. If A$=""
  497.    Print "That won't get us far!"
  498.    Goto _ASKUSER
  499. End If 
  500. W1$="" : W2$="" : W3$="" : W4$=""
  501. SIZE=Len(A$) : Rem LENGTH OF A$ = N 
  502. CURSER=1
  503. Gosub FIRST
  504. Gosub SECOND
  505. Gosub THIRD
  506. Gosub LAST
  507. '------------------------------------------------------- 
  508. '
  509. _INPUT_INTERPRETATION:
  510. If W1$="quit" Then HK=1 : Gosub QUIT
  511. If W1$="help" Then HK=1 : Gosub HELP
  512. If W1$="i" Then HK=1 : Gosub INVENTORY
  513. If W1$="score" Then HK=1 : Gosub SCORE
  514. If W1$="save" Then HK=1 : Gosub GAMESAVE
  515. If W1$="load" Then HK=1 : Gosub GAMELOAD
  516. If W1$="look" Then HK=1 : Gosub LOOK
  517. If W1$="map" Then HK=1 : Gosub PEKATMAP
  518. If W1$="graphics"
  519.     If W2$="on"
  520.       HK=1 : GRA=1 : Print "Graphics now on."
  521.       End If 
  522.     If W2$="off"
  523.       HK=1 : GRA=0 : Print "Graphics now off."
  524.       End If 
  525. End If 
  526. If W1$="buy"
  527.   If W2$="new"
  528.    If W3$="order"
  529.      If W4$="republic"
  530.       HK=1 : For QZ=1 To B : J(QZ)=252 : Next : Print "Damn Good Album, Red Says."
  531.       Print "Passwords: 3 Red Rain 4 Regret"
  532.       Print "5 Heaven"
  533.       Print "All objects carried installed."
  534.       Print "Happy testing boyo!"
  535.      End If 
  536.    End If 
  537.  End If 
  538. End If 
  539. If W1$="get"
  540.    If W2$="all"
  541.       HK=1
  542.       For Z=1 To B
  543.          If J(Z)=LC
  544.             If V$(Z)<>""
  545.                  J(Z)=252 : Print "I collect ";OBJ$(Z)
  546.             End If 
  547.          End If 
  548.       Next Z
  549.    End If 
  550. End If 
  551. If W1$="drop"
  552.    If W2$="all"
  553.       HK=1
  554.          For Z=1 To B
  555.             If J(Z)=252
  556.                J(Z)=LC : Print "I've dropped ";OBJ$(Z)
  557.             End If 
  558.          Next Z
  559.     End If 
  560. End If 
  561. ' >>>>>>>>>> Part One General Actions <<<<<<<<<<<<<' 
  562. If W1$="examine"
  563.    If W2$="drain"
  564.       If J(1)=LC
  565.          HK=1 : Print "It looks like you might just be"
  566.          Print "able to open it."
  567.       End If 
  568.    End If 
  569.  End If 
  570. If W1$="open"
  571.    If W2$="drain"
  572.       If J(1)=LC
  573.          HK=1 : J(1)=0 : V$(1)="" : J(2)=LC : J(3)=LC
  574.          Print "Ok. You have found something!"
  575.       End If 
  576.    End If 
  577.  End If 
  578. If W1$="s"
  579.  If HK=0
  580.    If LC=5
  581.     If J(5)=252
  582.        HK=1 : Print "Let me get my map out to see where to gonext.."
  583.        Print : Print "Press any key to continue.."
  584.        Wait Key 
  585.        Gosub MAP
  586.        Screen To Front 0
  587.        Screen 0
  588.     Else 
  589.        HK=1 : Print "Gosh, it looks like a long, tiresome    path in that direction."
  590.     End If 
  591.    End If 
  592.   End If 
  593. End If 
  594. If W1$="open"
  595.    If LC=12
  596.      HK=1 : Print "The door is firmly locked."
  597.    End If 
  598. End If 
  599. If W1$="give"
  600.   If W2$="poster"
  601.     If W4$="blacksmith"
  602.        If STANDING(3)=14
  603.            If J(14)=252
  604.               HK=1 : Print MESSAGE$(4)
  605.               STANDING(3)=0
  606.               J(14)=0 : J(47)=252
  607.            End If 
  608.        End If 
  609.     End If 
  610.   End If 
  611. End If 
  612. If W1$="give"
  613.    If W2$="horseshoe"
  614.      If W4$="henry"
  615.        If J(47)=252
  616.           J(5)=252 : HK=1 : J(47)=0
  617.           Print "Great! Here's the horse."
  618.        End If 
  619.      End If 
  620.    End If 
  621. End If 
  622. If W1$="give"
  623.    If W2$="jar"
  624.      If W4$="greg"
  625.         If LC=16
  626.           If J(4)=252
  627.             HK=1 : J(4)=0 : J(6)=252 : Print MESSAGE$(8)
  628.           End If 
  629.         End If 
  630.      End If 
  631.    End If 
  632. End If 
  633. If W1$="give"
  634.    If W2$="note"
  635.      If W4$="fripples"
  636.         If LC=17
  637.            If J(6)=252
  638.                Print MESSAGE$(9)
  639.                HK=1 : LC=18 : Wait Key : Gosub LOOK
  640.            End If 
  641.         End If 
  642.      End If 
  643.    End If 
  644. End If 
  645. If W1$="u"
  646.     If LC=18
  647.        LC=19 : HK=1 : Gosub LOOK
  648.     End If 
  649. End If 
  650. If W1$="d"
  651.     If LC=19
  652.        LC=18 : HK=1 : Gosub LOOK
  653.     End If 
  654. End If 
  655. ' opens
  656. If W1$="open"
  657.    If W2$="drawer"
  658.       If J(10)=LC
  659.          HK=1 : Print "You find nothing." : J(10)=0
  660.          End If 
  661.      End If 
  662.    If W2$="chest"
  663.       If J(11)=LC
  664.          HK=1 : Print "You find something....!" : J(14)=LC : J(11)=0
  665.          End If 
  666.      End If 
  667.    If W2$="cabinet"
  668.       If J(12)=LC
  669.          HK=1 : J(12)=0 : J(15)=LC : Print "You find something....!"
  670.          End If 
  671.      End If 
  672. End If 
  673. If W1$="examine"
  674.    If W2$="chest"
  675.       HK=1 : Print "They can open."
  676.    End If 
  677.    If W2$="cabinet"
  678.       HK=1 : Print "I wonder what's inside?"
  679.    End If 
  680.    If W2$="drawer"
  681.       HK=1 : Print "Must be able to open it."
  682.    End If 
  683. End If 
  684. '
  685. '>>>>>>>>>>>>>>> Part Two General Actions <<<<<<<<<<<<<<<<<<<<<
  686. '
  687. If W1$="w"
  688.   If LC=24
  689.        HK=1 : Print "Let me get my map out to see where to gonext.."
  690.        Print : Print "Press any key to continue.."
  691.        Wait Key 
  692.        Goto MAP
  693.   End If 
  694. End If 
  695. If W1$="wear"
  696.     If W2$="stag"
  697.        If J(7)=252
  698.            HK=1 : J(7)=251 : Print "Ok."
  699.         End If 
  700.     End If 
  701. End If 
  702. If W1$="remove"
  703.     If W2$="stag"
  704.        If J(7)=251
  705.            HK=1 : J(7)=252 : Print "Ok."
  706.        End If 
  707.     End If 
  708. End If 
  709. If W1$="s"
  710.    If HK=0
  711.     If LC=25
  712.       If J(7)=251
  713.         HK=1 : Print "The guards are so dumb they think I'm a real stag!"
  714.         LC=26 : Print : Print "Press any key when ready" : Wait Key 
  715.         Gosub LOOK
  716.        Else 
  717.         HK=1 : Print "Get out of here! There are guards there who will see me - even if they are      pretty dumb."
  718.       End If 
  719.      End If 
  720.     End If 
  721. End If 
  722. '
  723. If W2$="signpost"
  724.     If LC=26
  725.        HK=1 : Print "It reads 'No weird headwear here please'Thank you."
  726.     End If 
  727. End If 
  728. If W1$="talk"
  729.     If STANDING(7)=LC
  730.        HK=1 : Print MESSAGE$(10)
  731.        STANDING(7)=0
  732.     End If 
  733. End If 
  734. If W1$="examine"
  735.     If STANDING(7)=LC
  736.        HK=1 : Print "She seems a little young to be out here on here own?"
  737.     End If 
  738. End If 
  739. If W1$="give"
  740.  If W2$="twig"
  741.    If STANDING(8)=LC
  742.       If J(16)=252
  743.            HK=1 : Print MESSAGE$(12)
  744.            J(16)=0 : STANDING(8)=0
  745.            J(17)=252
  746.       End If 
  747.     End If 
  748.   End If 
  749. End If 
  750. If W1$="use"
  751.    If W2$="cream"
  752.      If J(17)=252
  753.         HK=1 : Print "Spot cream! Oh, Ok, I'll put some on -  I've got a nasty biggun just on my chin."
  754.      End If 
  755.    End If 
  756. End If 
  757. If W1$="give"
  758.  If STANDING(9)=LC
  759.    If W2$="toothpaste"
  760.         HK=1 : Print "Too minty!"
  761.    End If 
  762.    If W2$="cream"
  763.       If J(17)=252
  764.           J(17)=-1 : HK=1
  765.           Print "Oh yummie, cream! I love cream, don't   you? Why don't you go down to my cottageand help yourself to some juicy fruit   picked this morning."
  766.           Print "Press any key."
  767.           Wait Key : LC=31 : Gosub LOOK
  768.       End If : End If 
  769.   End If 
  770. End If 
  771. If W1$="w"
  772.       If LC=30
  773.          If J(17)=-1
  774.             HK=1 : LC=31 : Gosub LOOK
  775.          End If 
  776.       End If 
  777. End If 
  778. If W1$="use"
  779.    If W2$="bowl"
  780.       If W4$="strawberries"
  781.          If J(19)=252
  782.            If J(8)=252
  783.              HK=1 : Print "Wow! The strawberries are in the bowl." : J(19)=0 : J(8)=0 : J(20)=252
  784.            End If 
  785.          End If 
  786.       End If 
  787.    End If 
  788. End If 
  789. If W1$="use"
  790.    If W2$="strawberries"
  791.       If W4$="bowl"
  792.          If J(19)=252
  793.            If J(8)=252
  794.              HK=1 : Print "Wow! The strawberries are in the bowl." : J(19)=0 : J(8)=0 : J(20)=252
  795.            End If 
  796.          End If 
  797.       End If 
  798.    End If 
  799. End If 
  800. ' >>>>>>>>>>>> Part Three (GREAT BRIDGE) General Actions <<<<<<<<<<<<<<<<< 
  801. If W1$="w"
  802.       If LC=35
  803.        HK=1 : Print "Let me get my map out to see where to gonext.."
  804.        Print : Print "Press any key to continue.."
  805.        Wait Key 
  806.        Goto MAP
  807.   End If 
  808. End If 
  809. If W1$="open"
  810.   If W2$="bag"
  811.     If J(21)=252
  812.        Print "Wow! it's got a soap bag in it"
  813.        HK=1 : J(21)=0 : J(22)=252
  814. End If : End If : End If 
  815. If W1$="open"
  816.   If W2$="soap"
  817.     If J(22)=252
  818.       HK=1 : Print "It's got some handy gear in it!"
  819.       J(22)=0 : J(23)=252 : J(24)=252
  820. End If : End If : End If 
  821. If W1$="give"
  822.  If W2$="toothpaste"
  823.    If STANDING(11)=LC
  824.       If J(15)=252
  825.          HK=1 : Print "Oh that's great." : J(15)=0 : Inc GARTH
  826. End If : End If : End If : End If 
  827. If W1$="give"
  828.  If W2$="toothbrush"
  829.     If STANDING(11)=LC
  830.          If J(23)=252
  831.             HK=1 : Print "Oh that's great." : J(23)=0 : Inc GARTH
  832. End If : End If : End If : End If 
  833. If GARTH=2
  834.       GARTH=3 : HK=1
  835.       Print "This is great! You can go over"
  836.       Print "the bridge now."
  837. End If 
  838. If W1$="e"
  839.   If LC=40
  840.      If GARTH=3
  841.        LC=41 : HK=1 : Gosub LOOK
  842.      Else 
  843.        HK=1 : Print "Sorry man, you know the score."
  844.      End If 
  845.   End If 
  846. End If 
  847. If W1$="wear"
  848.    If W2$="wig"
  849.     If J(13)=252
  850.       HK=1 : Print "Gosh, the things I have to do."
  851.       J(13)=251
  852.       If J(7)=251
  853.          Print "I'll have to take the Stag Head off." : J(7)=252
  854.       End If 
  855. End If : End If : End If 
  856. If W1$="remove"
  857.    If W2$="wig"
  858.       If J(13)=251
  859.           J(13)=252 : HK=1 : Print "Thank God for that!"
  860. End If : End If : End If 
  861. If W1$="s"
  862.     If LC=42
  863.       If J(13)<>251
  864.             HK=1 : Print "Sorry, this party is for big boys only, Nojoys men. So beat it lad."
  865.           End If 
  866.           If J(13)=251
  867.              HK=1 : Print "Hey boys, at last a woman has arrived atour party! Love the hair, beauty. Step  in and join the lads. Press any key.."
  868.              LC=43 : Wait Key : Gosub LOOK
  869.           End If 
  870.       End If 
  871. End If 
  872. If W1$="use"
  873.    If W2$="tankard"
  874.      If W4$="beer"
  875.        If J(18)=252
  876.         HK=1 : J(18)=0 : J(25)=252 : Print "Ok. I have a tankard of beer."
  877.        End If 
  878.      End If 
  879.    End If 
  880. End If 
  881. '
  882. '
  883. ' >>>>>>>>>>>>>>>> SPECIAL PRISON SECTION <<<<<<<<<<<<<<<<<< 
  884. If W2$="door"
  885.      If LC=44
  886.         HK=1 : Print "Oh dear, it's firmly locked. I think I  need to USE something strong to wedge itopen with."
  887. End If : End If 
  888. If W2$="barn"
  889.      If LC=44
  890.         HK=1 : Print "I can't see anything useful around the  barn."
  891. End If : End If 
  892. If W1$="use"
  893.   If W2$="sword"
  894.    If LC=44
  895.      If J(9)=252
  896.          If W4$<>"door"
  897.             HK=1 : Print "What shall I use it on?"
  898.          Else 
  899.             HK=1 : Print "Ok, it worked!" : Wait Key : LC=45 : Gosub LOOK
  900.          End If 
  901. End If : End If : End If : End If 
  902. If W1$="s"
  903.   If LC=45
  904.        HK=1 : Print "Let me get my map out to see where to gonext.."
  905.        Print : Print "Press any key to continue.."
  906.        Wait Key 
  907.        Goto MAP
  908.   End If 
  909. End If 
  910. ' >>>>>>>>>>>>>>>> Part Four (CASTLE) General actions <<<<<<<<<<<< 
  911. '
  912. If W1$="w"
  913.    If LC=46
  914.        HK=1 : Print "Let me get my map out to see where to gonext."
  915.        Print : Print "Press any key to continue.."
  916.        Wait Key 
  917.        Goto MAP
  918.     End If 
  919. End If 
  920. If W1$="give"
  921.    If W2$="tankard"
  922.       If STANDING(14)=LC
  923.          If J(25)=252
  924.             HK=1 : J(25)=0 : Print "Thanks! lovely metalwork here and it    tastes good too! Enter the city mate!"
  925.             STANDING(14)=0
  926.          End If 
  927.          If J(25)<>252
  928.           If HK=0
  929.             HK=1 : Print "I want a some BEER. Get my draught.... Imean Drift? (sorry folks..)"
  930.           End If 
  931.          End If 
  932.       End If 
  933.    End If 
  934. End If 
  935. If W1$="e"
  936.     If LC=46
  937.          If STANDING(14)=0
  938.             HK=1 : LC=47 : Gosub LOOK
  939.          End If 
  940.          If STANDING(14)=LC
  941.             HK=1 : Print "Sorry mate. Is a beer too dear?"
  942.          End If 
  943.     End If 
  944. End If 
  945. If W1$="give"
  946.    If W2$="shower"
  947.       If STANDING(15)=LC
  948.          If J(24)=252
  949.             HK=1 : J(24)=-1 : Print "Smashing! Have this spray." : J(27)=252
  950.          End If 
  951.       End If 
  952.    End If 
  953. End If 
  954. If W1$="use"
  955.    If W2$="spray"
  956.       If J(27)=252
  957.          HK=1 : Print "You really want me to use this stuff! Ohwell.. PPPEEEHHH!  Smells horrid - I    wonder if it works?"
  958.       End If 
  959.    End If 
  960. End If 
  961. If W1$="examine"
  962.    If W2$="shoe"
  963.       If J(29)=252
  964.          HK=1 : J(29)=0 : J(30)=252 : Print "You find a lace!"
  965.       End If 
  966.    End If 
  967. End If 
  968. If W1$="use"
  969.    If W2$="key"
  970.       If J(46)=252
  971.          If J(31)=LC
  972.             J(46)=0 : J(31)=0 : J(32)=LC : HK=1 : Print "You have opened the trapdoor!"
  973.          End If 
  974.       End If 
  975.    End If 
  976. End If 
  977. If W1$="d"
  978.    If LC=54
  979.     If J(32)=LC
  980.       HK=1 : LC=62 : Gosub LOOK
  981.     End If 
  982.    End If 
  983. End If 
  984. If W1$="u"
  985.    If LC=62
  986.     LC=54 : HK=1 : Gosub LOOK
  987.    End If 
  988. End If 
  989. If W1$="give"
  990.    If W2$="spray"
  991.       If STANDING(16)=LC
  992.          If J(27)=252
  993.             HK=1 : J(27)=0 : STANDING(16)=0 : Print "Excellent mate! Help yourself to the    tower."
  994.          End If 
  995.       End If 
  996.    End If 
  997. End If 
  998. If W1$="e"
  999.    If STANDING(16)=0
  1000.       If LC=56
  1001.          HK=1 : LC=64 : Gosub LOOK
  1002.       End If 
  1003.    End If 
  1004. End If 
  1005. If W1$="examine"
  1006.    If W2$="fountain"
  1007.       If LC=59
  1008.          HK=1 : J(34)=252 : Print "Wow! I've pulled out a fish!"
  1009.       End If 
  1010.    End If 
  1011. End If 
  1012. If W1$="give"
  1013.    If W2$="onion"
  1014.       If STANDING(17)=LC
  1015.          If J(26)=252
  1016.             J(35)=252 : HK=1 : J(26)=-1 : Print "Brilliant! Thank you. Here, have this   lighter, it might come in handy."
  1017.          End If 
  1018.       End If 
  1019.    End If 
  1020. End If 
  1021. If W1$="use"
  1022.    If W2$="lace"
  1023.       If W4$="gunpowder"
  1024.          If J(30)=252
  1025.             If J(36)=252
  1026.                J(36)=0 : HK=1 : J(30)=0 : J(37)=252 : Print "Wow! I can cause devastation now!"
  1027.             End If 
  1028.          End If 
  1029.       End If 
  1030.    End If 
  1031. End If 
  1032. If W1$="use"
  1033.    If W2$="lighter"
  1034.       If W4$="gunpowder"
  1035.        If J(35)=252
  1036.          If J(37)=252
  1037.             If LC<>63
  1038.                HK=1 : Print "Great idea, but not here please."
  1039.             End If 
  1040.             If LC=63
  1041.                HK=1 : J(37)=0 : Goto WONTHEGAME
  1042.             End If 
  1043.          End If 
  1044.        End If 
  1045.       End If 
  1046.    End If 
  1047. End If 
  1048. ' >>>>>>>>>>>>>>>>> Part FIVE (TOWER) General Actions <<<<<<<<<<<<<<<<<<<< 
  1049. '
  1050. If W1$="u"
  1051.    If LC=65
  1052.       LC=68 : HK=1 : Gosub LOOK
  1053.    End If 
  1054. End If 
  1055. If W1$="read"
  1056.    If W2$="scroll"
  1057.       HK=1 : Print "At the top it says 'Handle with care'.  If only I examined this scroll I might  find more detail."
  1058.    End If 
  1059. End If 
  1060. If W1$="use"
  1061.    If W2$="sword"
  1062.       If W4$="guard"
  1063.          If J(9)=252
  1064.             If STANDING(20)=LC
  1065.                HK=1 : Print "Ok, Ok! Lets not get violent. Help      yourself to the vault, I'm off. {RED:   Gosh, they don't make guards like they  used to..}"
  1066.                J(38)=0 : J(39)=LC : STANDING(20)=0
  1067.             End If 
  1068.          End If 
  1069.       End If 
  1070.    End If 
  1071. End If 
  1072. If W1$="examine"
  1073.    If W2$="vault"
  1074.        If J(38)=LC
  1075.          HK=1 : Print "Well, the guard won't let me near it."
  1076.        End If 
  1077.        If J(39)=LC
  1078.          HK=1 : Print "I have found some things!" : J(39)=-1 : J(40)=LC : J(36)=LC
  1079.        End If 
  1080.        If J(39)=-1
  1081.         If HK=0
  1082.          HK=1 : Print "It seems someone's dragged it away!"
  1083.         End If 
  1084.        End If 
  1085.    End If 
  1086. End If 
  1087. If W1$="examine"
  1088.    If LC=67
  1089.       If W2$="barrel"
  1090.          HK=1 : Print "It's just empty." : J(41)=0
  1091.       End If 
  1092.       If W2$="box"
  1093.          HK=1 : Print "Sorry, nothing in here." : J(42)=0
  1094.       End If 
  1095.       If W2$="shelf"
  1096.          HK=1 : Print "You find a tin!" : J(44)=252 : J(43)=0
  1097.       End If 
  1098.    End If 
  1099. End If 
  1100. If W1$="open"
  1101.   If W2$="tin"
  1102.    If J(44)=252
  1103.       If STANDING(19)<>LC
  1104.          HK=1 : Print "I don't think the Manic Monsters will beappropriate right here."
  1105.       End If 
  1106.       If STANDING(19)=LC
  1107.          HK=1 : J(44)=0 : STANDING(19)=0 : Print "The Manic Monsters (big ants) hop out   the tin and charge towards the helpless wolf, who runs away in a wild frenzy!"
  1108.       End If 
  1109.    End If 
  1110.  End If 
  1111. End If 
  1112. If W1$="n"
  1113. '
  1114.    If LC=70
  1115.       If STANDING(19)=0
  1116.          HK=1 : LC=71 : Gosub LOOK
  1117.       End If 
  1118.       If STANDING(19)=LC
  1119.          HK=1 : Print "I cannot get past that wolf."
  1120.       End If 
  1121.    End If 
  1122.    If LC=71
  1123.       If STANDING(21)=0
  1124.          HK=1 : LC=72 : Gosub LOOK
  1125.       End If 
  1126.       If STANDING(21)=LC
  1127.          HK=1 : Print "That tiger looks hungry!"
  1128.       End If 
  1129.    End If 
  1130. End If 
  1131. If W1$="give"
  1132.    If W2$="fish"
  1133.       If STANDING(21)=LC
  1134.          If J(34)=252
  1135.             HK=1 : J(34)=0 : STANDING(21)=0
  1136.             Print "Red throws the fish to the ground and   the tiger snatches the fish and happily strides away with the fish between it's teeth."
  1137.          End If 
  1138.       End If 
  1139.    End If 
  1140. End If 
  1141. If W1$="u"
  1142.    If LC=69
  1143.       LC=73 : HK=1 : Gosub LOOK
  1144.    End If 
  1145. End If 
  1146. If W1$="d"
  1147.    If LC=73
  1148.       LC=69 : HK=1 : Gosub LOOK
  1149.    End If 
  1150.    If LC=68
  1151.       LC=65 : HK=1 : Gosub LOOK
  1152.    End If 
  1153. End If 
  1154. If W1$="give"
  1155.    If W2$="bowl"
  1156.       If STANDING(23)=LC
  1157.          If J(20)=252
  1158.             HK=1 : J(20)=0 : STANDING(23)=0
  1159.             Print "They certainly look yummie. Ok I'll takethem. Do what you want Red Tassel, I    don't care any more. Nojoy doesn't care about me, only his stupid work and that young tart down the market. One day I'llleave him, one day."
  1160.          End If 
  1161.       End If 
  1162.    End If 
  1163. End If 
  1164. If W1$="s"
  1165.    If LC=74
  1166.       If STANDING(23)=0
  1167.          HK=1 : LC=75 : Gosub LOOK
  1168.       End If 
  1169.       If STANDING(23)=LC
  1170.          HK=1 : Print "Busty Bella says she may consider       letting me past, but not for nothing."
  1171.       End If 
  1172.    End If 
  1173. End If 
  1174. If W1$="use"
  1175.    If W2$="brick"
  1176.       If J(28)=252
  1177.          If STANDING(24)=LC
  1178.             HK=1 : J(28)=-1 : Print MESSAGE$(35)
  1179.          End If 
  1180.       End If 
  1181.    End If 
  1182.    If W2$="sword"
  1183.       If STANDING(24)=LC
  1184.          HK=1 : Print "Ha! It will take more than a mere sword to crush me!"
  1185.       End If 
  1186.    End If 
  1187. End If 
  1188. If W1$="use"
  1189.    If W2$="chains"
  1190.       If J(45)=252
  1191.          If STANDING(24)=LC
  1192.             If J(28)=-1
  1193.                J(46)=252 : HK=1 : J(45)=0 : STANDING(24)=0 : Print MESSAGE$(36)
  1194.             End If 
  1195.          End If 
  1196.       End If 
  1197.    End If 
  1198. End If 
  1199. ' >>>>>>>>>>>>>>>>> ADDITIONAL EXAMINE OPERATIONS<<<<<<<<<<<<<<<<' ' 
  1200. If W1$="examine"
  1201.    If W2$="farmhouse"
  1202.       If LC=12
  1203.            HK=1 : Print "I can't go in."
  1204.       End If 
  1205.    End If 
  1206.    If W2$="frogs"
  1207.       If LC=11
  1208.          HK=1 : Print "They are jumping about all over the     place. Strange what they have on farms  these days."
  1209.       End If 
  1210.    End If 
  1211.    If W2$="tiger"
  1212.       If STANDING(21)=LC
  1213.          HK=1 : Print "It's just a big cat really. I bet it    likes all the things normal cats like."
  1214.       End If 
  1215.    End If 
  1216.    If W2$="fireplace"
  1217.         HK=1 : Print "It's nice and warm!"
  1218.    End If 
  1219.    If W2$="chair"
  1220.          HK=1 : Print "The chair is ordinary."
  1221.    End If 
  1222.    If W2$="cd"
  1223.          HK=1 : Print "It's got all the latest features and is currently playing John Denver. Oh well, at least the beer's good."
  1224.    End If 
  1225.    If W2$="beer"
  1226.          HK=1 : Print "It's good stuff."
  1227.    End If 
  1228.    If W2$="pigeons"
  1229.          HK=1 : Print "They are small, fat creatures that      wobble when walking. They have a        tendency to deposit doo doos            wherever they please."
  1230.    End If 
  1231.    If W2$="books"
  1232.       If LC=72
  1233.          HK=1 : Print "I haven't got time to read them now."
  1234.       End If 
  1235.    End If 
  1236.    If LC=75
  1237.      If W2$="flag"
  1238.         HK=1 : Print "It's a very unusual flag, a bit like thenational flag of Botswana with the face of Nojoy embroidered into the middle."
  1239.      End If 
  1240.      If W2$="maps"
  1241.       HK=1 : Print "They are colourful representations of   hills, towns and roads."
  1242.      End If 
  1243.      If W2$="crayons"
  1244.       HK=1 : Print "Sorry, no time for drawing."
  1245.      End If 
  1246.      If W2$="desk"
  1247.       HK=1 : Print "There are a few books scattered across  the desk, but they do not look very     interesting."
  1248.      End If 
  1249.    End If 
  1250.    If W2$="lights"
  1251.      If LC=73
  1252.       HK=1 : Print "They are normal lights."
  1253.      End If 
  1254.    End If 
  1255.    If W2$="cells"
  1256.      If LC=71
  1257.       HK=1 : Print "Nasty places for nasty people."
  1258.      End If 
  1259.    End If 
  1260.    If W2$="market"
  1261.      If LC=48 or LC=52
  1262.         HK=1 : Print "A lively place with lots to buy, but I  have not got time to go shopping now."
  1263.      End If 
  1264.    End If 
  1265.    If W2$="folk"
  1266.       If LC=48
  1267.          HK=1 : Print "Nice people, but I have work to do."
  1268.       End If 
  1269.    End If 
  1270.    If W2$="trapdoor"
  1271.       If LC=54
  1272.          HK=1 : Print "Trapdoors often lead somewhere."
  1273.       End If 
  1274.    End If 
  1275.    If W2$="woodpecker"
  1276.       If LC=36
  1277.          HK=1 : Print "Going by the markings, it must be of thetalking variety."
  1278.       End If 
  1279.    End If 
  1280.    If W2$="river"
  1281.       If LC=39 or LC=40 or LC=41
  1282.          HK=1 : Print "The river seems to be flowing quite     well. It seems like any other river."
  1283.       End If 
  1284.    End If 
  1285.    If W2$="wood"
  1286.       If LC=28
  1287.          HK=1 : Print "It looks like someone has been here veryrecently."
  1288.       End If 
  1289.    End If 
  1290.    If LC=22
  1291.       If W2$="bed"
  1292.          HK=1 : Print "A fine bed that looks immaculate.       Whoever sleeps in it must take lots of  care."
  1293.       End If 
  1294.       If W2$="furniture"
  1295.          HK=1 : Print "There are things like stools, mirrors,  lamps and clothes all over the room, butnothing takes my interest."
  1296.       End If 
  1297.    End If 
  1298.    If W2$="gear"
  1299.       If LC=15
  1300.          HK=1 : Print "There is lots of equipment here but I donot really need any of it."
  1301.       End If 
  1302.    End If 
  1303. End If 
  1304. ' >>>>>>>>>>>>>>>>> the talks <<<<<<<<<<<<<<<
  1305. If W1$="talk"
  1306.        If W3$="officer"
  1307.           HK=1 : Print MESSAGE$(1) : End If 
  1308.        If W3$="barman"
  1309.           HK=1 : Print MESSAGE$(2) : End If 
  1310.        If W3$="blacksmith"
  1311.           HK=1 : Print MESSAGE$(3) : End If 
  1312.        If W3$="henry"
  1313.            If J(5)=0
  1314.              HK=1 : Print MESSAGE$(5)
  1315.            Else 
  1316.              HK=1 : Print MESSAGE$(6)
  1317.            End If : End If 
  1318.        If W3$="greg"
  1319.            If J(4)=0
  1320.              HK=1 : Print "Go away, I'm eating!"
  1321.            Else 
  1322.              HK=1 : Print MESSAGE$(7)
  1323.            End If : End If 
  1324.        If W3$="fripples"
  1325.            HK=1 : Print "No permission, no entry to the house.   Simple as that young lad." : End If 
  1326.        If W3$="forester"
  1327.           If STANDING(8)=28
  1328.               HK=1 : Print MESSAGE$(11)
  1329.           End If : End If 
  1330.        If W3$="lady"
  1331.           If J(17)=-1
  1332.               HK=1 : Print MESSAGE$(14)
  1333.           End If : End If 
  1334.        If W3$="lady"
  1335.           If J(17)>-1
  1336.               HK=1 : Print MESSAGE$(13)
  1337.           End If : End If 
  1338.        If W3$="woodpecker"
  1339.          If GARTH<3
  1340.              HK=1 : Print MESSAGE$(15)
  1341.            End If 
  1342.          If GARTH=3
  1343.              HK=1 : Print MESSAGE$(16)
  1344.            End If 
  1345.         End If 
  1346.       If W3$="garth"
  1347.        If LC=40
  1348.          If GARTH=0
  1349.             HK=1 : Print MESSAGE$(17)
  1350.          End If 
  1351.          If GARTH=1
  1352.             HK=1 : Print MESSAGE$(18)
  1353.          End If 
  1354.          If GARTH=3
  1355.             HK=1 : Print MESSAGE$(19)
  1356.          End If 
  1357.        End If 
  1358.       End If 
  1359.      If W3$="guard"
  1360.         If STANDING(12)=LC
  1361.           If J(13)<>251
  1362.              HK=1 : Print "Sorry, this party is for hard lads only,Nojoys men.. unless you are a tasty     female guest. So beat it laddie."
  1363.           End If 
  1364.           If J(13)=251
  1365.              HK=1 : Print "Now there's a tasty bit of girlie. Love the hair beauty. Step in and join the   lads. Press any key.."
  1366.              LC=43 : Wait Key : Gosub LOOK
  1367.           End If 
  1368.        End If 
  1369.       End If 
  1370.     If W3$="bill"
  1371.          If J(13)<>251
  1372.              HK=1 : Print "Look lads, we seem to have an           uninvited guest!                        (Red swiftly blacks out).               Press any key.."
  1373.              Wait Key : LC=44 : Gosub LOOK
  1374.           End If 
  1375.          If J(13)=251
  1376.              HK=1 : Print "Hi there girlie. Love the hair do.      Help yourself to my barrel of beer."
  1377.           End If 
  1378.      End If 
  1379.    If W3$="watchman"
  1380.          If STANDING(14)=LC
  1381.             HK=1 : Print "I could kill a beer."
  1382.          End If 
  1383.    End If 
  1384.    If W3$="winnie"
  1385.          If STANDING(15)=LC
  1386.             If J(24)>-1
  1387.                HK=1 : Print MESSAGE$(25)
  1388.             End If 
  1389.             If J(24)=-1
  1390.                HK=1 : Print MESSAGE$(26)
  1391.             End If 
  1392.          End If 
  1393.    End If 
  1394.    If W3$="doorkeeper"
  1395.       If STANDING(16)=LC
  1396.          HK=1 : Print MESSAGE$(27)
  1397.       End If 
  1398.    End If 
  1399.    If W3$="barlady"
  1400.       If STANDING(17)=LC
  1401.          If J(26)>-1
  1402.             HK=1 : Print MESSAGE$(28)
  1403.          End If 
  1404.          If J(26)=-1
  1405.             HK=1 : Print MESSAGE$(29)
  1406.          End If 
  1407.       End If 
  1408.    End If 
  1409.    If W3$="guard"
  1410.       If STANDING(20)=LC
  1411.          HK=1 : Print MESSAGE$(31)
  1412.       End If 
  1413.    End If 
  1414.    If W3$="turtle"
  1415.       If STANDING(18)=LC
  1416.          HK=1 : Print MESSAGE$(30)
  1417.       End If 
  1418.    End If 
  1419.    If W3$="fastflow"
  1420.       If STANDING(22)=LC
  1421.          HK=1 : Print MESSAGE$(32) : STANDING(22)=0
  1422.       End If 
  1423.    End If 
  1424.    If W3$="busty"
  1425.       If STANDING(23)=LC
  1426.          HK=1 : Print MESSAGE$(33)
  1427.       End If 
  1428.    End If 
  1429.    If W3$="general"
  1430.       If STANDING(24)=LC
  1431.          If J(28)>-1
  1432.             HK=1 : Print MESSAGE$(34)
  1433.          End If 
  1434.          If J(28)=-1
  1435.             HK=1 : Print MESSAGE$(35)
  1436.          End If 
  1437.       End If 
  1438.    End If 
  1439. End If 
  1440. '
  1441. '>>>>>>>>>>>>>>>> GET, DROP AND EXAMINE (exam objects only) <<<<<<<<<<<<<<<
  1442. '    GET, DROP AND EXAMINE ROUTINES. I HAVE PUT TOGETHER THE SPECIALISED 
  1443. '    VOCAB SECTION FOR THIS. 
  1444. ' Get..
  1445. If W1$="get"
  1446.   For Z=1 To B
  1447.      If W2$=V$(Z)
  1448.        If J(Z)=LC
  1449.            HK=1 : J(Z)=252 : Print "Ok"
  1450.         End If 
  1451.      End If 
  1452.   Next Z
  1453. End If 
  1454. '
  1455. If W1$="drop"
  1456.   For Z=1 To B
  1457.      If W2$=V$(Z)
  1458.         If J(Z)=252
  1459.            HK=1 : J(Z)=LC : Print "Ok"
  1460.         End If 
  1461.      End If 
  1462.   Next Z
  1463. End If 
  1464. '
  1465. If W1$="examine"
  1466.   For Z=1 To B
  1467.      If W2$=V$(Z)
  1468.         If J(Z)=252 or J(Z)=LC
  1469.            HK=1 : Print MESSAGE$(36+Z)
  1470.         End If 
  1471.      End If 
  1472.   Next 
  1473. End If 
  1474. '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<< 
  1475. ' essential directions 
  1476. If HK=1 Then Goto SKIPTHISBIT
  1477. If W1$="n" Then Gosub NORTH
  1478. If W1$="s" Then Gosub SOUTH
  1479. If W1$="e" Then Gosub EAST
  1480. If W1$="w" Then Gosub WEST
  1481. '
  1482. SKIPTHISBIT:
  1483. If W1$="examine"
  1484.   If HK=0
  1485.      HK=1 : Print "There is nothing interesting."
  1486.   End If 
  1487. End If 
  1488. '
  1489. If HK=0
  1490.    Print "Sorry, that is not possible."
  1491. End If 
  1492. Goto PARSER_INPUT
  1493. '
  1494. '
  1495. '********************************************************************
  1496. '***                                                              ***
  1497. '***                          SUB ROUTINES                        ***
  1498. '***                                                              ***
  1499. '********************************************************************
  1500. '
  1501. ' First, Second, Third and Forth are routines that break up the
  1502. ' user input into 4 separate words.
  1503. FIRST:
  1504. For R=1 To SIZE
  1505. If Mid$(A$,R,1)=" " Then Return 
  1506. W1$=W1$+Mid$(A$,R,1) : CURSER=R+2
  1507. Next R
  1508. '
  1509. SECOND:
  1510. For R=CURSER To SIZE
  1511. If Mid$(A$,R,1)=" " Then Return 
  1512. W2$=W2$+Mid$(A$,R,1) : CURSER=R+2
  1513. Next R
  1514. '
  1515. THIRD:
  1516. For R=CURSER To SIZE
  1517. If Mid$(A$,R,1)=" " Then Return 
  1518. W3$=W3$+Mid$(A$,R,1) : CURSER=R+2
  1519. Next R
  1520. '
  1521. LAST:
  1522. For R=CURSER To SIZE
  1523. W4$=W4$+Mid$(A$,R,1)
  1524. Next R
  1525. Return 
  1526. '
  1527. TITLEPAGE:
  1528. Screen Open 0,320,256,16,Lowres
  1529. Paper 0 : Cls : Pen 4
  1530. Screen Open 1,320,256,32,Lowres : Rem ..map  
  1531. Paper 0 : Cls : Pen 4
  1532. Screen Open 2,320,256,32,Lowres : Rem ..graphic location screens   
  1533. Paper 0 : Cls : Pen 4
  1534. Screen Open 3,320,256,32,Lowres : Rem .."Can't go there!" Message  
  1535. Paper 0 : Cls : Pen 4
  1536. Load Iff "adventure:locationgraphics/map",1
  1537. Screen To Front 0
  1538. Screen 0
  1539. Flash Off : Change Mouse 2
  1540. Curs Off 
  1541. Cls : Pen 5
  1542. Print "KNIGHTWOODE BRIEFING.."
  1543. Pen 2 : Print : Print 
  1544. Print "Ok then, you should already know about"
  1545. Print "Red Tassel and the problems faced by"
  1546. Print "Knightwoode, so I won't bore you now."
  1547. Print "Let me explain how Knightwoode plays.."
  1548. Print : Print 
  1549. Print "As you know, Red Tassel is off to sort"
  1550. Print "out the trouble-makers at Coldrock"
  1551. Print "Castle, but he is not especially bright"
  1552. Print "coming from a pig-farming background."
  1553. Print 
  1554. Print "You must successfully guide him by"
  1555. Print "using a set of simple commands. Type"
  1556. Print "HELP when you are playing for a full"
  1557. Print "list of words you can use. To move"
  1558. Print "around, use N for north, S for south"
  1559. Print "and so on. U will take you up and"
  1560. Print "D for down."
  1561. Print : Print : Centre "<< Press Any Key >>" : Wait Key 
  1562. Cls : Pen 5 : Print "KNIGHTWOODE BRIEFING.."
  1563. Pen 2 : Print : Print 
  1564. Print "These would be typical commands you"
  1565. Print "could say to Red Tassel during the"
  1566. Print "game.." : Print : Print 
  1567. Print "GIVE COIN TO MAN"
  1568. Print "(Red gives a coin to a man)."
  1569. Print "TALK TO MAGICIAN"
  1570. Print "(Red talks to magician)."
  1571. Print "GET BOOK"
  1572. Print "(Red picks up a book)."
  1573. Print "USE GLASS WITH TAP"
  1574. Print "(Red fills a glass with water)."
  1575. Print : Print : Print "If it seems strange, you'll get the"
  1576. Print "hang of it. Remember to type HELP if"
  1577. Print "you are stuck for words to use."
  1578. Pen 5
  1579. Locate 0,24 : Centre "Thanks to:"
  1580. Locate 0,25 : Pen 4 : Centre "Terry Taylor & Michael Clarke"
  1581. Locate 0,26 : Pen 5 : Centre "for their playtesting efforts."
  1582. Locate 0,29 : Centre "<< Press Any Key >>" : Wait Key 
  1583. Cls 
  1584. Locate 1,1 : Centre "GRAPHIC OPTIONS.."
  1585. Locate 1,4 : Centre "Location graphics have been"
  1586. Locate 1,5 : Centre "drawn for this game, although"
  1587. Locate 1,6 : Centre "this game is a TEXT adventure"
  1588. Locate 1,7 : Centre "first and foremost."
  1589. Locate 1,9 : Centre "Being a sympathetic"
  1590. Locate 1,10 : Centre "programmer, I have given"
  1591. Locate 1,11 : Centre "you the option of relief"
  1592. Locate 1,12 : Centre "from these masterpieces"
  1593. Locate 1,13 : Centre "of computer art(!)."
  1594. Locate 1,15 : Centre "Oh, and remember, if you get"
  1595. Locate 1,16 : Centre "annoyed with the parser"
  1596. Locate 1,17 : Centre "that's what text adventures"
  1597. Locate 1,18 : Centre "are all about!!"
  1598. Locate 1,20 : Centre "Play with graphics(Y/N)"
  1599. Repeat 
  1600. I$=Inkey$
  1601. Until I$<>""
  1602. I$=Upper$(I$) : If I$="Y" Then GRA=1
  1603. If I$="N" Then GRA=0
  1604. Menu$(1)="About "
  1605. Menu$(2)=" Vocab "
  1606. Menu$(3)=" More Vocab"
  1607. Menu$(1,1)="Knightwoode by Tony"
  1608. Menu$(1,2)="Kingsmill. Programmed"
  1609. Menu$(1,3)="May 1993 to April 1994"
  1610. Menu$(1,4)="using AMOS v1.3"
  1611. Menu$(2,1)="Map          Look"
  1612. Menu$(2,2)="Help         Examine"
  1613. Menu$(2,3)="Quit         Open"
  1614. Menu$(2,4)="Load         Get"
  1615. Menu$(2,5)="Save         I"
  1616. Menu$(2,6)="Score        Give"
  1617. Menu$(2,7)="Use          Talk"
  1618. Menu$(2,8)="Wear         Remove"
  1619. Menu$(3,1)="Graphics On"
  1620. Menu$(3,2)="Graphics Off"
  1621. Menu$(3,3)="N  S  E  W  U  D"
  1622. Menu$(3,4)="Read"
  1623. Menu On 
  1624. Return 
  1625. '
  1626. GAMESAVE:
  1627. Print "Save current position in game:"
  1628. Print "Please enter Save Disk to df0:"
  1629. Print "Press any key when ready.."
  1630. Wait Key 
  1631. Dir "df0:"
  1632.    Print "Please enter filename to save:"
  1633.    Input FILENAME$
  1634.    If FILENAME$=""
  1635.       Print "** No save made **"
  1636.       Return 
  1637.    End If 
  1638.    Open Out 1,"df0:"+FILENAME$
  1639.       Print #1,OC
  1640.       Print #1,LC
  1641.       Print #1,SC
  1642.       Print #1,T
  1643.       Print #1,ACCESS
  1644.       Print #1,GRA
  1645.       Print #1,GARTH
  1646.          For F=1 To B
  1647.             Print #1,J(F)
  1648.          Next F
  1649.          For F=1 To PEOPLE
  1650.             Print #1,STANDING(F)
  1651.          Next F
  1652.          Close 1
  1653.       Gosub LOOK
  1654. Return 
  1655. '
  1656. GAMELOAD:
  1657. Print "Load a Saved game:"
  1658. Print "Please enter Save Disk to df0:"
  1659. Print "Press any key when ready.."
  1660. Wait Key 
  1661. Dir "df0:"
  1662.   Print "Please enter filename to load:"
  1663.   Input FILENAME$
  1664.   If FILENAME$=""
  1665.     Print "** No load made **"
  1666.     Return 
  1667.   End If 
  1668. _LOAD:
  1669.   Open In 1,"df0:"+FILENAME$
  1670.       Input #1,OC
  1671.       Input #1,LC
  1672.       Input #1,SC
  1673.       Input #1,T
  1674.       Input #1,ACCESS
  1675.       Input #1,GRA
  1676.       Input #1,GARTH
  1677.        For F=1 To B
  1678.          Input #1,J(F)
  1679.        Next F
  1680.        For F=1 To PEOPLE
  1681.          Input #1,STANDING(F)
  1682.        Next F
  1683.       Close 1
  1684.   Gosub LOOK
  1685. Return 
  1686. '
  1687. QUIT:
  1688. Print "QUIT: Are you sure? (Y/N)"
  1689. Input A$
  1690. A$=Lower$(A$)
  1691. If A$="y"
  1692.     Print "Number of turns taken:";T
  1693.     Print "Ok. Do you want to start again?"
  1694.     Input "Y/N :";Z$ : Z$=Lower$(Z$)
  1695.     If Z$="y"
  1696.        FILENAME$="InitialSetUp"
  1697.        Gosub _LOAD
  1698.      Else 
  1699.        Cls : Locate 0,5 : Print "Remove Disks,"
  1700.        Locate 0,8 : Print "Hold Amiga-Amiga-Ctrl to"
  1701.        Locate 0,11 : Centre "reset machine.."
  1702.        Wait Key 
  1703.        End 
  1704.     End If 
  1705. End If 
  1706. If A$="n"
  1707.    Print "Oh good, carry on then."
  1708. End If 
  1709. Return 
  1710. '
  1711. INVENTORY:
  1712. CARRYINGFLAG=0
  1713. WEARINGFLAG=0
  1714. Print "I have with me.."
  1715. For F=1 To B
  1716. If J(F)=252
  1717.       Print OBJ$(F) : CARRYINGFLAG=1
  1718. End If 
  1719. Next F
  1720. If CARRYINGFLAG=0
  1721.       Print "Nothing at all."
  1722. End If 
  1723. Print "I am wearing.."
  1724. For F=1 To B
  1725. If J(F)=251
  1726.       Print OBJ$(F) : WEARINGFLAG=1
  1727. End If 
  1728. Next F
  1729. If WEARINGFLAG=0
  1730.       Print "Nothing at all" : Print "(except the bare essentials!)"
  1731. End If 
  1732. Return 
  1733. '
  1734. SCORE:
  1735. Print "Turns Taken: ";T
  1736. Print ""
  1737. Print "Just do your best!"
  1738. Return 
  1739. '
  1740. HELP:
  1741. Print "Well, well.. not stuck are we?"
  1742. Print "It is important to EXAMINE everything"
  1743. Print "that looks a bit interesting. If you"
  1744. Print "are really stuck, you can write to me"
  1745. Print "with a SAE for maps and hints sheet."
  1746. Print "Complete solution is optional - please"
  1747. Print "state if you want this too. "
  1748. Print "(Tony Kingsmill - 202 Park Street Lane,"
  1749. Print "Park Street, St.Albans, Herts AL2 2AQ)"
  1750. Print : Print "Press a key for the command list.."
  1751. Wait Key 
  1752. Cls 
  1753. Print "COMMAND LIST:"
  1754. Print 
  1755. Print "N - north" : Print "S - south"
  1756. Print "E - east" : Print "W - west"
  1757. Print : Print "QUIT, HELP, I - inventory list"
  1758. Print 
  1759. Print "LOAD, SAVE - put position to disk"
  1760. Print : Print "SCORE, LOOK, MAP, EXAMINE {object}"
  1761. Print : Print "OPEN {object}, GET {object}"
  1762. Print : Print "TALK TO {name},"
  1763. Print : Print "GIVE {object} TO {name}"
  1764. Print : Print "USE {object} WITH/ON {name/object}"
  1765. Print : Print "READ {object}, WEAR {object}"
  1766. Print : Print "REMOVE {object}, DROP {object}"
  1767. Print : Print "GRAPHICS ON/OFF - toggle graphics"
  1768. Print : Print "GET ALL, DROP ALL - Handy!"
  1769. Return 
  1770. '
  1771. NORTH:
  1772. If N(LC)=0
  1773.       Print DEADEND$
  1774.    Else 
  1775.       HK=1 : LC=N(LC) : Gosub LOOK
  1776. End If 
  1777. Return 
  1778. '
  1779. SOUTH:
  1780. If S(LC)=0
  1781.      Print DEADEND$
  1782.   Else 
  1783.       HK=1 : LC=S(LC) : Gosub LOOK
  1784. End If 
  1785. Return 
  1786. '
  1787. EAST:
  1788. If E(LC)=0
  1789.       Print DEADEND$
  1790.    Else 
  1791.       HK=1 : LC=E(LC) : Gosub LOOK
  1792. End If 
  1793. Return 
  1794. '
  1795. WEST:
  1796. If W(LC)=0
  1797.       Print DEADEND$
  1798.    Else 
  1799.       HK=1 : LC=W(LC) : Gosub LOOK
  1800. End If 
  1801. Return 
  1802. '
  1803. '
  1804. PEKATMAP:
  1805. Print "Ok, ok, you can have a quick look at my"
  1806. Print "map of the area, but I'm afraid I can't"
  1807. Print "just hop off and go to any of the"
  1808. Print "places. First you'll have to take me to"
  1809. Print "the proper sites."
  1810. Print "Ok, press a key when you are ready.."
  1811. Print "(press a key again when you have"
  1812. Print "finished looking at the map)."
  1813. Wait Key 
  1814. Screen To Front 1
  1815. Wait Key 
  1816. Screen To Front 0
  1817. Print : Print "Ok, I hope that helped you. Now can"
  1818. Print "we get on with it please."
  1819. Return 
  1820. '
  1821. '
  1822. LOOK:
  1823. If LC=1 Then GR$="1 vill green"
  1824. If LC=8 Then GR$="8 police"
  1825. If LC=11 Then GR$="11 barn"
  1826. If LC=15 Then GR$="15.henry"
  1827. If LC=18 Then GR$="18 hall"
  1828. If LC=31 Then GR$="31cottage"
  1829. If LC=36 Then GR$="36signpost"
  1830. If LC=39 Then GR$="39 bridge"
  1831. If LC=46 Then GR$="46 gates" : Rem This added FEB'94
  1832. If LC=50 Then GR$="50 witches room"
  1833. If LC=60 Then GR$="60 inn"
  1834. If LC=62 Then GR$="63sewers"
  1835. If LC=72 Then GR$="72cell"
  1836. If LC=75 Then GR$="75 command room"
  1837. If GRA=1
  1838.   If GR$<>""
  1839.         Screen 2 : Cls : Load Iff "adventure:locationgraphics/"+GR$,2
  1840.         Screen To Front 2
  1841.         Hide On 
  1842.         For R=0 To 7
  1843.         Draw R,0 To R,256
  1844.         Draw 313+R,0 To 313+R,256
  1845.         Draw 0,R To 320,R
  1846.         Draw 0,249+R To 320,249+R
  1847.         Next 
  1848.         Wait Key 
  1849.         Show On 
  1850.         Screen To Front 0 : Screen 0
  1851.   End If 
  1852. End If 
  1853. '
  1854. ' Show Location Description
  1855. Cls 
  1856. Gosub RESETCOLS
  1857. Pen 0 : Paper 2 : Print "KNIGHTWOODE v1.0   Tony Kingsmill '93/4 "
  1858. Pen 3 : Paper 0
  1859. Print LOC$(LC)
  1860. ' Objects that can be seen.. 
  1861. For F=1 To B
  1862. If J(F)=LC
  1863.    Print "I can see ";OBJ$(F)
  1864. End If 
  1865. Next F
  1866. ' characters at current location.. 
  1867. For F=1 To PEOPLE
  1868. If STANDING(F)=LC Then Print CHAR$(F)
  1869. Next F
  1870. Pen 2
  1871. GR$=""
  1872. Return 
  1873. '
  1874. ' This routine resets some of the colours for text output. This is 
  1875. ' because some of the colours are 'corrupted' when graphics are
  1876. ' displayed. 
  1877. RESETCOLS:
  1878. Colour 0,$0
  1879. Colour 2,$FFF
  1880. Colour 3,$FF0
  1881. Colour 5,$F0
  1882. Return 
  1883. '
  1884. ' For when the game has been won.
  1885. WONTHEGAME:
  1886. Screen 2 : Cls : Load Iff "adventure:locationgraphics/wonthegame"
  1887. Screen To Front 2
  1888. Hide 
  1889. Wait Key 
  1890. Cls : Load Iff "adventure:locationgraphics/wonthegame2"
  1891. Wait Key 
  1892. Show On 
  1893. Screen To Front 0 : Screen 0
  1894. Print : Print "Ok, now you've completed the adventure"
  1895. Print "do you wish to (p)lay again or (q)uit?"
  1896. Input QUESTION$ : QUESTION$=Lower$(QUESTION$)
  1897. If QUESTION$="p"
  1898.        FILENAME$="InitialSetUp"
  1899.        Gosub _LOAD
  1900. End If 
  1901. If QUESTION$="q"
  1902.        Print "Ok, I don't blame you!"
  1903.        End 
  1904. End If 
  1905. Return 
  1906. '
  1907. MAP:
  1908. ' go to the map and choose a new location area to go to (SUBroutine) 
  1909. Screen To Front 1
  1910. MAP2:
  1911. Repeat : I$=Inkey$ : Until I$<>""
  1912. OP=0
  1913. If I$="1" Then LC=5 : OP=1
  1914. If I$="2" Then LC=24 : OP=1
  1915. If OP=0
  1916.   If I$="3"
  1917.     Gosub GOFORIT
  1918.     If PSD$="RED RAIN"
  1919.          LC=35
  1920.     End If 
  1921.   End If 
  1922.   If I$="4"
  1923.     Gosub GOFORIT
  1924.     If PSD$="REGRET"
  1925.          LC=46
  1926.     End If 
  1927.   End If 
  1928.   If I$="5"
  1929.     Gosub GOFORIT
  1930.     If PSD$="HEAVEN"
  1931.          LC=64
  1932.      End If 
  1933.   End If 
  1934. End If 
  1935. Screen To Front 0
  1936. Gosub LOOK
  1937. Goto PARSER_INPUT
  1938. '
  1939. GOFORIT:
  1940.      Screen To Front 0 : Print "Please enter the password:"
  1941.      Input PSD$ : PSD$=Upper$(PSD$)
  1942. Return 
  1943. '
  1944. PANIC:
  1945. Print 
  1946. Print "***** ERROR *****"
  1947. Resume Next